約 5,416,875 件
https://w.atwiki.jp/suffix/pages/1109.html
/*javaソース*/ public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.option_menu, menu); /*menuをプログラムから追加する方法*/ menu.add(Menu.NONE,int型変数,Menu.NONE,"Menu1"); return true; } public boolean onOptionsItemSelected(MenuItem item) { boolean ret = true; switch (item.getItemId()) { default break; case R.id.item1 //res/menu配下で指定したIDのメニューの動作 break; case int型変数 //上のonCreateOptionsMenuで追加したメニューの動作 break; } return ret; } /*res/menu配下に作るoption_menu.xml*/ ?xml version="1.0" encoding="utf-8"? menu xmlns android="http //schemas.android.com/apk/res/android" item android id="@+id/item1" android title="1" / /menu
https://w.atwiki.jp/vocaloidenglishlyric/pages/307.html
【Tags C Kaito Miku Signal-P VY1 VY2 orange tC S】 Original VY1, VY2 version Music Title サンドリヨン Cendrillon English Music Title Cendrillon Romaji Music Title Sandoriyon Lyrics written by orange Music written, Voice edited by シグナルP(Signal-P) Music arranged by シグナルP(Signal-P) Singers [Original version] by 初音ミク (Hatsune Miku), KAITO, [VY1, VY2 version] by VY1 MIZKI, VY2 勇馬 (Yuuma) The arrangement of the song was titled "Adolescence" and sung by Rin and Len. The lyrics are diffrent from "Cendrillon". Fanmade Promotional Video(s) Fanmade Cover(s) Click here for the Japanese Lyrics English Lyrics (translated by blacksaingrain): Let (me) dream of dancing till the dawn The bells of the clock would break the magic Vaguely (those) fingers beckon (me) to the stairs (I) leap them up taking three at a time In the carriage (you were) shivering Flick up the miserable rags and dance in the ball at night (I) look for the one (I) do not know. That voice whispers (me) "Thrust the edge (you) hold and take away everything" In the castle orphans get together, drawing smiles on the masks The seraph would take even a false mercy under the wings In the ashes the glass slippers are ruddily melting and merging Knowing too late, (I) get shivers and wish to go back At the clock you glance (I) take off the slippers and dance through a slope By the tips of (your) fingers reached for (my) neck (I) brush a tear and give it a kiss At that moment an impulse runs down the spine Do not ring the bells. As (I) fall on (my) knees to you And cry "Not yet", (my) right hand thrusts "Farewell" (You are) the princess with indelible perfume of gunshot residue (Your) strong eyes penetrate (me) right through my icy mask Still your breath pierces the ears (of mine) (It would be) a faraway dream The moon shining through a stained-glass window is The veil (I) put on you At the knee (I) tear the dress and throw away the tiara (We) gaze into each other s eyes and sparks fly Burning in flames, the lonely souls feel drawn to each other If (I) cannot blush away your tears As if (it were) a solitary play (May) the time stop now! Intoxicated by you (I) wish to engrave every swaying throb (on my mind) (May) it stay! Stricken by hotly wet surge (I) cannot move any more As if (it were) a fairy tale Romaji lyrics (transliterated by blacksaingrain): Asa made odoru yume dake misete Tokei no kane ga toku mahou Aimaina yubi sasou kaidan San-dan tobashi ni hanete iku Basha no naka de furueteta Mijimena furugi mekuri megure yoru no butou Mishiranu kao sagasu sasayaku ano koe ga Nigiri shimeta yaiba tsuki tate subete wo ubaeto Minashigo tsudou shiro emi kamen ni egaite Itsuwari no itsukushimi sae hane de tsutsumu serafu Hai no naka de akaku tokete majiru garasu no kutsu Imasara kaeru furuete iru no Anata ga me wo yaru tokei Kutsu nugi odoru surōpu nukete Nodo made nobiru yubi no saki de Sukuu shizuku kuchi zukete Hashiru shyoudou sebone nukete iku setsuna Kane wa narasa nai de anata ni hizamazuki Mada dame to sakenda migite ga tsuki sasu sayonara Kese nai shyouen wo kousui ni matou hime Tsuyoi hitomi boku no kootta kamen goto uchi nuku Ima mo mimi ni anata no toiki ga Tsuki sasaru no tooi yume Sutendo-gurasu goshi hikaru tsuki ga Kimi ni kabuseta bēru Doresu hiza de saite thiara wa nage sutete Mitsume au hitomi to hitomi ga hibana wo hanatsu Kodoku na tamashii ga honoo age hikare au Sono namida sukue nai nara marude hitori asobi Toki yo tomare ima wa Anata ni yoi shirete Yureru kodou hitotsu hitotsu wo kizami tsukete tai Todomare Atsuku nure uchitsukeru takamari ni Kore ijyou wa ugoke nai yo Marude fearī-teiru [orange, SignalP, Signal-P, Sigunaru-P, SigunaruP, Dios, Hiroaki Arai]
https://w.atwiki.jp/technology_pbl/
技研PBL@wikiへようこそ ここはテクノロジー研究部のPBL活動をまとめる場所です。 このページはログインすれば満足に編集することができます。 作品紹介 BMICalculator 活動内容 Androidアプリの製作 開発環境 Windows(XP, Vista, 7) Eclipse, MergeDoc Project(Pleiades All in One 日本語ディストリビューション) Android SDK JDK(Java Development Kit) メニュー メンバー 活動報告
https://w.atwiki.jp/androidplayapp/pages/30.html
カード&カジノ ドリームコイン落としAQUA【無料ゲーム】 「ドリームコイン落とし AQUA」は、アクアリウムを舞台とした無料で遊べるコイン落としゲームです!!アクアリウムにコインを投入!スロットでお魚ゲット! https //play.google.com/store/apps/details?id=com.ggee.vividruntime.game_ticket_1087 feature=top-free 麻雀 雷神 -Rising- 雷神は【無料】で遊べる本格3D麻雀です!最高品質の3DグラフィックとAIを搭載。 https //play.google.com/store/apps/details?id=am.ate.android.olmahjong feature=top-free UNO FREE 大人から子供まで楽しめる、あの世界的に有名なカードゲームが忠実に再現されてアンドロイド版で登場!新ルールが追加されて、さらに盛り上がること間違いなし! https //play.google.com/store/apps/details?id=com.gameloft.android.ANMP.GloftUFHM feature=top-free ソリティア 昔ウィンドウズで楽しんだソリティアカードゲームが好きだったらきっとこのアプリケーションも好きになるはずですよ! https //play.google.com/store/apps/details?id=com.mobilityware.solitaire feature=top-free 大富豪 お待たせいたしました!大人気トランプゲームの大富豪がAndroidで初登場です!土地柄でルールが変わる大富豪をアプリでも楽しんでいただけるよう、Jバック・縛り・都落ち・上がり制限などのローカルルールを自由に設定できるようになっています。 https //play.google.com/store/apps/details?id=jp.co.sic.millionaire feature=top-free 777townSP:パチスロ・パチンコのゲームアプリ パチスロ・パチンコアプリが登場!サミーネットワークス提供のパチスロ・パチンコのゲームアプリ!パチスロ北斗の拳、パチスロ交響詩編エウレカセブンなどのアプリが満載! https //play.google.com/store/apps/details?id=net.sp777town.portal feature=top-free 数独 Super Sudoku スーパー数独は洗練されて完成の域に達し、操作が簡単、直感的に楽しめるタッチスクリーン ゲームになりました! https //play.google.com/store/apps/details?id=com.kiwifruitmobile.sudoku feature=top-free アイムジャグラーEX Lite GREEで北電子のロングセラー人気スロット「アイムジャグラーEX」がLite版として無料で登場。実機を再現したシンプルかつ奥の深いプレイをお楽しみください。 https //play.google.com/store/apps/details?id=jp.gree.android.juggler.ex feature=top-free コインパイレーツ Coin☆Piratesはコインを投下して宝物を獲得するコインプッシャーゲームです。 https //play.google.com/store/apps/details?id=com.nubee.coinpirates feature=top-free Coin Dozer ゲームセンターでよく見かける古典的なコインを落としゲーム。 それがアプリになりました! それがこの「Coin Dozer」です。 シンプルですが無料で楽しむことができ、思わずハマってしまう楽しさがあります。 https //play.google.com/store/apps/details?id=com.leftover.CoinDozer feature=top-free マイン スイーパ 縦横に並んだ正方形のセルのいくつかに埋まっている地雷を探し出すゲーム。地雷の埋まっていないセルをすべて開くとクリアとなる。 https //play.google.com/store/apps/details?id=com.crossfield.minesweeper2 feature=top-free パチスロ北斗の拳(2011)軽量版 初代パチスロ「北斗の拳」を完全転生!中段チェリーの興奮。モード移行システムによる期待感。前兆演出。あの興奮を、感動を、盛り上がりを、鮮明に再現!バトルボーナスがARTとなり、進化!その名も「激闘乱舞」! https //play.google.com/store/apps/details?id=net.sp777town.ps000b feature=top-free 麻雀 VirtualTENHO-G! 片手で手軽にできる多機能・高速動作の麻雀アプリです。現在も開発が進められており頻繁にアップデートされております https //play.google.com/store/apps/details?id=jp.bustercurry.virtualtenho_g feature=top-free
https://w.atwiki.jp/lovelybell/pages/15.html
3月GuildEventクイズ大会 ヒサシブリにクィズ大会( ≧∀≦)ノダァーッ!! アルケル港にて集まれる人はまったり&PT狩り中などなどその場から離れられなぃ人でも参加可能。 当日GuildEvent用茶室で開催予定!! もちろん今回も優勝者にぁ素敵なプレゼントありMД━(*´艸`*)━SЦ
https://w.atwiki.jp/elslibraone/pages/57.html
nexus7(2013)とiPhone4sとWindows7による比較。 iOS版では起動時にAZOOZAのロゴ画面が出る。 iOS版ではスタート時のメニューにEXITが無い。 Android版では画面左上にバッテリー、SDカード、ネットワークが表示されるが、iOS版ではバッテリーと時刻が表示される。 iOSは前回セーブしたデータが自動的に読み込まれる。 iOSには中断機能がない。 Windows版はフリーでできる範囲までです。(裏ダンジョンプレイはスマホにセーブデータを引き継ぐ)
https://w.atwiki.jp/ntemacs/pages/22.html
■ Windows版 Emacs 共通の設定 【お知らせ】 2018/08/28 追記 WSL での locate の利用については、こちらを参照ください。 locate を使うための設定(WSL 設定編) 2018/08/26 追記 locate コマンドで and 検索ができるようにあ、-A オプションを追加しました。 2015/07/22 追記 cron-config の実行時の挙動が変わったようなので、コマンドの指定方法を変更しました。 【本題】 Cygwin および NTEmacs から locate を利用するための設定です。 まず、locateを使うためのDBを次のようなスクリプトを実行して作成します。updatedb のオプションは、適当に修正してください。 ~/bin/updatedb.sh #!/bin/sh export LC_ALL=C export CYGWIN="nodosfilewarning" updatedb \ --localpaths= c / \ --findoptions= -type d -name .svn -prune -o -type d -name .git -prune -o -path c /\$RECYCLE.BIN -prune -o -path c /Windows -prune c / の並び(下)に別なドライブを追加することができます。 「// コンピュータ名またはIPアドレス / 共有名 /」のようなUNCパスを登録することでファイルサーバのファイル情報を登録することもできます。 ファイルサーバの認証が発生する場合は、次の方法で認証情報を記憶させてください。 https //www.ipentec.com/document/windows-delete-stored-authentication-information findoptions の設定の意味は、次のとおりです。 一行目:ディレクトリ.svnは含めない 三行目:c /$RECYCLE.BIN で始まるパスは含めない これで、shell から locate 検索文字列 と入力して、検索が可能となります。 Emacs からは、M-x locate で実行できます。 ※ locate の検索に時間が掛かる場合は、データベース化するディレクトリの範囲を絞ってください。 検索結果は、dired のように、Enter や f が利用可能ですが、次の設定を行っておくと、より便利に利用できます。 (require locate) ;; ファイルのあるディレクトリを OS で開く (define-key locate-mode-map (kbd "E") (lambda () (interactive) (os-open-command (locate-get-dirname)))) ;; ファイルのあるディレクトリを dired で開く (define-key locate-mode-map (kbd "d") (lambda () (interactive) (dired (locate-get-dirname)))) ;; C-c l で locate を起動する (global-set-key (kbd "C-c l") locate) ※ 上記の設定の os-open-command は、「dired を OS と連携して使うための設定」で紹介したものと同じものを利用しています。 「dired を OS と連携して使うための設定」で行った W キーや find-file の設定も、locate の検索結果の画面で利用可能です。 locate は anything とも連携できます。 ;; locateコマンドのパラメータを指定する (setq anything-c-locate-command "locate -i -A --regex %s") helmと連携する場合は次のとおりとなります。 ;; locateコマンドのパラメータを指定する (setq helm-locate-command "locate %s -A --regex %s") ※ helm の設定については、次のページを参照してください。 helm を使うための設定 また、上記で紹介した updatedb.sh は、cron を使って夜間等に毎日実行すると便利です。 その場合の設定を以下に紹介します。 0) Cygwin に cygrunsrv、cron がインストールされていなければ、インストールする。 ※ インストールされているかどうかは、cygcheck -c cygrunsrv 、cygcheck -c cron で確認できる。 1) mintty を管理者権限で立ち上げ、cron-config を実行する。" username "の箇所には、ログインしているユーザ名を指定してください。 # cyg_username= username cron-config Do you want to install the cron daemon as a service? (yes/no) yes Enter the value of CYGWIN for the daemon [ ] ← Returnのみ押下 You must decide under what account the cron daemon will run. If you are the only user on this machine, the daemon can run as yourself. This gives access to all network drives but only allows you as user. To run multiple users, cron must change user context without knowing the passwords. There are three methods to do that, as explained in http //cygwin.com/cygwin-ug-net/ntsec.html#ntsec-nopasswd1 If all the cron users have executed "passwd -R" (see man passwd), which provides access to network drives, or if you are using the cyglsa package, then cron should run under the local system account. Otherwise you need to have or to create a privileged account. This script will help you do so. Do you want the cron daemon to run as yourself? (yes/no) yes Please enter the password for user username ← ログインユーザが username の部分に表示されるので、そのパスワードを入力する Reenter ← パスワードを再入力する Running cron_diagnose ... ... no problem found. Do you want to start the cron daemon as a service now? (yes/no) yes OK. The cron daemon is now running. In case of problem, examine the log file for cron, /var/log/cron.log, and the Windows event log (using /usr/bin/cronevents) for information about the problem cron is having. Examine also any cron.log file in the HOME directory (or the file specified in MAILTO) and cron related files in /tmp. If you cannot fix the problem, then report it to cygwin@cygwin.com. Please run the script /usr/bin/cronbug and ATTACH its output (the file cronbug.txt) to your e-mail. WARNING PATH may be set differently under cron than in interactive shells. Names such as "find" and "date" may refer to Windows programs. 2) cron が正常に起動したかを、cygrunsrv -Q cron を実行することで確認する。 3) うまく動作しない場合は、cronevents コマンドでログを確認する。 4) cron が正常に起動していることを確認したら、crontab に次を設定する。ユーザ権限(管理者権限でなく)で実行した mintty から、crontab -e で設定する。確認は、crontab -l。 0 3 * * 1,2,3,4,5 /bin/sh /home/bin/updatedb.sh /tmp/updatedb.log 2 1 ※ この設定は、平日の深夜3時に ~/bin に格納されている updatedb.sh を実行するものとなります。 5) 登録した cron サービスを削除するには、、cygrunsrv -R cron を実行する。 6) Cygwin のアップデートを行うとき、プログラムが使用されているというエラーとなる場合があるので、そのときは Windows のコントロールパネルのサービスの機能を使って、Cron daemon のサービスを一時的に停止する。 ※ 管理権限で立ち上げた mintty から、cygrunsrv -E cron(停止)、cygrunsrv -S cron(起動)を行うことも可能 上記は、次のページを参考としました。 https //sites.google.com/site/ta2masaru/Home/cygwin%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E3%81%BE%E3%81%A8%E3%82%81/cygwin%E3%81%A7%E5%90%84%E7%A8%AE%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E6%A7%8B%E7%AF%89 http //bearmini.net/blog/View.aspx?bid=1 aid=154 変更履歴 2012/09/25 anything から locate を使う場合の説明を追加した。 2012/12/27 lambda関数のクォートをとった。 2014/04/30 updatedb のパラメータの説明文を追加した。 2015/07/22 cron-config の実行時の挙動が変わったようなので、コマンの指定方法を変更した。 2018/08/26 locate コマンドで and 検索ができるようにあ、-A オプションを追加した。
https://w.atwiki.jp/dwarffortress/pages/57.html
Dwarf Fortress Modeをはじめる Choose Fortress Location 作成時のVersion 最終更新Version 0.31.25 Dwarf Fortress Modeにおいて、要塞を作る場所の選択は極めて重要である。 なぜなら、要塞の場所によって、存在する自然環境(山、植物、砂、海、川、地中の資源)や、 動物の種類(自然な動物からアンデッドまで)、交流する文明(戦争相手となるゴブリンも含まれる)などなど、 ゲームの内容そのものとなる数限りない要素が左右されるためである。 この項では、好きな要素を持つ地形を少しでも選びやすくするために、環境の読み方を解説したい。 Choose Fortress Location 基本操作 環境情報 Environment Neighbors Your Civilization Relative Elevation Cliff Indicator Notes Find Desired Location 特別な地形 Aquifer Salt water 基本操作 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL1.png") Movement keys control region cursor."Region"画面(左側)をカーソルキーで移動する。- umkh Move Local Area"Local"画面(左端)の要塞範囲を上下左右に移動する。- UMKH Resize Local Area"Local"画面の要塞範囲を上下左右に拡大・縮小する。- Tab Change Mode情報画面(右端)の表示する情報(後述)を変更する。- e Embark!出発! R Reclaim以前に放棄した要塞があった場合、その要塞を復興する。- n Notes選択した地域を記録し、後から読み出せる。気になる地域があるが、他の地域も調べたい・・・というような時に便利である。- f Find Desired Location特定の環境を持つ場所を自動検索する。 環境情報 Tab キーを押す事で、右端に表示される環境情報を読み進める事ができる。 Environment #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL1.png") その地域が持つ自然環境について記している。 最上段(この場合、The Mysterious Hill)その地域の名前。 2段目(この場合、Tropical Shrubland)地域の大まかな状態 3段目、Temperature 地域の気候。 4段目、Trees 木の密生率。 5段目、Other Vegetation その他の有用な植物の量。 6段目、Surroundings 生息する野生動物の種類 中段、範囲内に存在する都市や川、火山などの名称。この場合、川(Stream)の名前 ちなみに Stream 上を歩いて渡ることができない川 Brook 上を歩いて渡れる小川 となっている。 下段、その地域に存在する地中の資源の情報。 なお、環境の異なる地域同士の境界線を選択した場合、 F1 F2 キーで異なる地形の情報を表示できる。 3つ以上の地域を選択している場合は F3 F4 キーも使えるようになる。 Neighbors #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL2.png") 自分がその範囲に要塞を作った場合、交流する事になる種族のリスト。 右側に赤線が入っているのは、忌み嫌う種族(すなわちゴブリン)であることを示す。 Your Civilization #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL3.png") ドワーフ族の文明のリスト。 ハイライトされている文明に所属して、開拓を始める事になる。 所属する文明は+/-で切り替える事ができる。 所属する文明は、embarkの際に持ち込める品、毎年秋にやってくるキャラバンの品揃え、 および他文明との関係に影響する。 Relative Elevation #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL4.png") 比高。海抜ではなく、その地域の最も低い位置を基準にした標高図。 Cliff Indicator #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 ("CFL5.png") 地形の高低の度合いを示す図。数字が高いほど高低差が激しい。 範囲内すべてが0なら、全く平坦な土地となる(はず)。 Notes Find Desired Location あなたが好きな条件の地域を選ぶために、力になってくれるのが Find Desired Locationだ。 あなたが要塞を作る地域を選ぶ際に、"f"キーを押すことで、機能を使うことができる。 調査できる項目は― X Dimension要塞の横幅。デフォルトで4。 Y Dimension要塞の縦幅。デフォルトで4。 Savaery野生生物の残虐度。 lowであれば生物が余り多くなく、比較的温和な場所が検索される。 mediumなら一般的な数、種類の動物が住む場所が見つかるだろう。 highであれば荒々しく野性的な動物が数多く住む未開の地を開拓する事になる。 必ずしもlowなら安全というわけではないので注意。詳しくは翻訳/クリーチャー参照。 Evil野生生物のアラインメント。lowであればunicornやfairyが戯れる神秘的な場所へ行く事になる。unicornは攻撃的で強くかつ解体出来ないので、神秘的といってもまったく安全というわけではない。mediumならごく一般的な生物が暮らす平凡な場所が見つかり、highであればゾンビなどのアンデッドが闊歩するおぞましい光景が広がる場所に辿り着くだろう。より詳しくは翻訳/クリーチャー参照。 Elevation土地の標高。highにすると山の近くが選ばれやすい。 Temperature温度。lowであればColdやFreezingといった寒冷地へ旅に出る。寒冷地は冬に外気に接している水が凍る。地下何十メートルの縦穴の水であろうが凍る。Freezingは外にいるだけで傷を負うことがある。mediumならTemperateやWarmといった暮らしやすい温暖な場所に要塞を作る事になり、highであればHot(酷暑)な場所が見つかる。水や酒を飲みやすくなるようだ。それぞれ生息するCreatureに影響する。また生物が多い領域は当然熱帯地域に多い。極端な環境の場所は危険度が高いため注意が必要。-Rain雨の頻度。lowだと砂漠や荒野、mediumであれば平野、highだと森林がそれぞれ見つかる。-Drainage水はけ。湿地はもちろん、砂漠もlowに該当することに注意。highだと平原や荒地、森林になりやすい。 Flux StoneFlux Stoneが存在するかどうか。steelの原料になるので作りたいならYesにするべきだろう。 AquiferAquifer(帯水層)が存在するかどうか。これが浅い階層にあると、掘りさげていけなくなり、帯水層以下の鉱石が入手できなくなる。どうしても挑戦したい、という時以外はOFFに選択した方が良い。突破するには少々めんどくさいテクニックが必要。詳しくはAquifer。Aquiferが存在する地形は青字でAquiferと表記される。また、出発時にも注意してくれる。-RiverRiver(川)が存在するかどうか。Brook(小川)も検索対象になる。あれば水不足には陥らない。Brook以外なら魚系のクリーチャー(大型の魚類で、危険)も存在する場合もある。ときたま人型生物が大挙して出現することがある。-Shallow MetalShallow Metal層が存在するかどうか(?)//Sedimentary層とMetamorphic層が存在するかどうか、だと思うが未検証なので・・・。 この層では、鉄が得られる可能性があるらしい。 Deep MetalDeep Metal層が存在するかどうか(?)-Soil Soil(砂)が存在するかどうか。 DeepかSharrowか選択できる。 Clay Clay(粘土)が存在するかどうか。 DeepかSharrowか選択できる。 特別な地形 Aquifer 帯水層。 Embarkする時に警告してくれる。 掘ると水が沸いてくる。基本的に避けるべき。詳細はAquiferにて。 Salt water その地域の水は全て塩分を含む。 ドワーフはスナネズミではないので、残念ながら海水は飲むことができない。 塩水が存在する場所にEmberkしようとすると警告がでる。 (但し選択マップ上に塩水が無くても近くが塩水だと警告が出ることがある) 水が飲めないと、酒が無くなるとあっという間に全滅したり、怪我人が乾き死したりする。 Screw pumpを使えば水を脱塩できる。その場合、脱塩した水をためる水槽は、壁も床も人工の建築物でないと、天然土や岩に触れてふたたび塩味がついてしまうようだ。もっとも、建築物はそこら辺の石で作ればよい。(*1)
https://w.atwiki.jp/android_memo/pages/2.html
メニュー 環境構築 for Windows リンク Android Android Developers Google Code 更新履歴 取得中です。 ここを編集
https://w.atwiki.jp/bovecrach/pages/52.html
執筆中 目次 「android baselineAligned」がなぜ lint の警告対象なのか。解説されているブログ なぜ警告対象になるんだろう。 LinearLayoutのソースから baselineAligned の動きを読み解く。LinearLayout.measureHorizontal(int, int) LinearLayout.layoutHorizontal() MyLinearLayoutを作って確認してみることにする。 まとめ 「android baselineAligned」がなぜ lint の警告対象なのか。 解説されているブログ 元々、ADT-16にしたときから警告が出ていたので気になっていた。 探してみたら既に記事があったので、まずは掲載。 Androidアプリ開発 http //android49.blog.fc2.com/ Androidアプリ開発 「android baselineAligned」とは なぜ警告対象になるんだろう。 「なるほどなぁ~」と解説を読んだのだが、ふと、どのくらいの警告レベルなんだろうと思った。 merge タグは明らかにViewGroupが減っているので顕著なんだが、 設定を1つ false にする程度で、どうして警告が出るんだろうか。 そこんとこがちょっと引っかかったので調べてみる。 LinearLayoutのソースから baselineAligned の動きを読み解く。 まずは android.widget.LinearLayout を眺めてみることにする。 記憶されるフィールド名は mBaselineAligned で、 代入以外の使用箇所は以下の2メソッド android.widget.LinearLayout.measureHorizontal(int, int) android.widget.LinearLayout.layoutHorizontal() それぞれが何をしているのか。 LinearLayout.measureHorizontal(int, int) この処理が長そうだ。 child.measure(freeSpec, freeSpec); この中で呼んでいる onMeasure(widthMeasureSpec, heightMeasureSpec); は、android.widgetにあるほぼ全てのViewを継承したクラスがOverrideしている。 例としてImageViewでは、646~749行目までの約100行が使われている。 Drawableの有無や幅・高さはもちろん、 パディングやアスペクトも考慮された計算がずらずらと・・・。 特にViewGroupの処理は顕著で、 子Viewを全て計算すると子Viewから想定される“ちょうどいい”感じを 頑張って導き出している。 呼び出される回数によっては危なそうだ。 LinearLayout.layoutHorizontal() こちらは以下のメソッドがルートになっている。 android.widget.LinearLayout.onLayout(boolean, int, int, int, int) measureHorizontal()と同じように色々と計算があるものの、 子Viewに対する重めの呼び出しがないようなので、 すごく遅くなるイメージではない。 MyLinearLayoutを作って確認してみることにする。 public class MyLinearLayout extends LinearLayout { public MyLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { long start = System.currentTimeMillis(); super.onMeasure(widthMeasureSpec, heightMeasureSpec); L.d("process time = %d", System.currentTimeMillis() - start); } @Override protected void onLayout(boolean changed, int l, int t, int r, int b) { long start = System.currentTimeMillis(); super.onLayout(changed, l, t, r, b); L.d("process time = %d", System.currentTimeMillis() - start); }} 画面はこんなの。 ListFragmentが2つでタブに登録されていて、ボタンがいくつか。 メニューも2項目ある。 ルートのViewGroupとして指定して回数/時間を確認してみると、 まとめ 名前